/**
 * 邮箱
 * @param {*} s
 */
export function isEmail(s) {
  return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}

/**
 * 手机号码
 * @param {*} s
 */
export function isMobile(s) {
  return /^1[0-9]{10}$/.test(s)
}

/**
 * 电话号码
 * @param {*} s
 */
export function isPhone(s) {
  return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}

/**
 * URL地址
 * @param {*} s
 */
export function isURL(s) {
  return /^http[s]?:\/\/.*/.test(s)
}

/**
 * 验证税号
 * 15或者17或者18或者20位字母、数字组成
 * @param obj
 * @returns {Boolean}
 */
export function checkTax(obj) {
  if (/^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/.test(obj)) {
    return true;
  }
}

/**
 * 验证金额（可验证 大于等于零，小于等于99999999.99 的数字）
 * @param obj
 * @returns {Boolean}
 */
export function checkMoney(obj) {
  if (/^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/.test(obj)) {
    return true;
  }
}

/**
 * 验证企业地址（中文、英文、数字）
 * @param obj
 */
export function checkAddress(obj) {
  if (/^[\u4e00-\u9fa5a-zA-Z0-9]+$/.test(obj)) {
    return true;
  }
}

/**
 * 验证银行卡号
 * @param data
 * @returns {boolean}
 */
export function checkBankCard(data) {
  const regExp = /^([1-9]{1})(\d{15}|\d{18})$/;
  return regExp.test(data)
}

/* 合法uri */
export function validateURL(textval) {
  const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
  return urlregex.test(textval)
}

/* 小写字母 */
export function validateLowerCase(str) {
  const reg = /^[a-z]+$/
  return reg.test(str)
}

/* 大写字母 */
export function validateUpperCase(str) {
  const reg = /^[A-Z]+$/
  return reg.test(str)
}

/* 大小写字母 */
export function validatAlphabets(str) {
  const reg = /^[A-Za-z]+$/
  return reg.test(str)
}

/* 验证内容是否英文数字以及下划线 */
export function validateEngOrNum(rule, value, callback) {
  const reg = /^[_a-zA-Z0-9]+$/;
  if (value === '' || value === undefined || value == null) {
    callback();
  } else {
    if (!reg.test(value)) {
      callback(new Error('英文字母、数字或下划线'));
    } else {
      callback();
    }
  }
}
